const {app, BrowserWindow, screen, ipcMain, nativeTheme, Menu} = require('electron')
const path = require('path')
const {runBat} = require("./src/electron/batServer")
const {createWS} = require("./src/electron/wsServer")

// 热加载
try {
    require('electron-reloader')(module, {});
} catch (_) {
}

// 处理在安装/卸载时在Windows上创建/删除快捷方式。
if (require('electron-squirrel-startup')) {
    app.quit();
}

Menu.setApplicationMenu(null)

const createWindow = () => {
    const win = new BrowserWindow({
      icon: path.join(__dirname, 'uav.ico'),
        width: screen.getPrimaryDisplay().workAreaSize.width, // 直接显示最宽窗口，非最大化
        height: screen.getPrimaryDisplay().workAreaSize.height, // 直接显示最高窗口，非最大化
        webPreferences: {
            preload: path.join(__dirname, 'preload.js') // 指定preload脚本的路径
        }
    })
    // console.log(process.env.NODE_ENV)
    if (process.env.NODE_ENV === 'development') {
        win.webContents.openDevTools() // 开发环境自动打开devtools
        win.loadURL('http://localhost:8089') // 开发环境加载本地服务
    } else {
        win.loadFile('./dist/index.html') // 非开发环境加载打包后的静态页面
    }
    createWS()
}

app.whenReady().then(() => {
    createWindow()
    app.on('activate', () => {
        if (BrowserWindow.getAllWindows().length === 0) {
            createWindow()
        }
    })
})

app.on('window-all-closed', () => {
    if (process.platform !== 'darwin') {
        if (global.bat) {
            console.log('quit app!')
            global.bat.stdin.write('1\n', (err) => {
                if (err) {
                    console.error('写入数据时出错write err:', err);
                } else {
                    console.log('数据成功写入write success');
                    // app.quit()
                    // 继续执行其他逻辑
                }
            });
        }
        // 延迟执行，确保Rflysim被关闭
        setTimeout(()=>{
            app.quit()
        }, 5000)
    }
})
